package juego.personaje.mario;

import javax.swing.ImageIcon;


import juego.graficos.ElementoGrafico;
import juego.main.SoundPlayer;
import juego.malos.Enemigo;

/**
 * Clase que modela la caracteristica Mini de Mario Bros, esto es
 * un Mini Mario Bros.
 * @author Latini Macarena
 * @author Rosas Tifany
 */
public class CaracteristicaMini extends Caracteristica{

	/**
	 * Constructor.
	 * @param m Mario Bros. 
	 */
	public CaracteristicaMini(Mario m){
		super(m);
		altura=32;
		crearGraficos();
	}
	
	/**
	 * Crea los graficos correspondientes a la caracteristica que se
	 * esta modelando.
	 */
	public void crearGraficos()
	{
		derecha=new ElementoGrafico(new ImageIcon(getClass().getClassLoader().getResource("juego/graficos/minimario/caminandoder.gif")));
		derecha.setBounds(0,0, 32, 32);
		derecha.setLayout(null);
		
		izquierda= new ElementoGrafico(new ImageIcon(getClass().getClassLoader().getResource("juego/graficos/minimario/caminandoizq.gif")));
		izquierda.setBounds(0,0, 32, 32);	

		nada= new ElementoGrafico(new ImageIcon(getClass().getClassLoader().getResource("juego/graficos/minimario/mario.gif")));
		nada.setBounds(0,0, 32, 32);
		nada.setLayout(null);
		
		saltarder= new ElementoGrafico(new ImageIcon(getClass().getClassLoader().getResource("juego/graficos/minimario/jump1.gif")));
		saltarder.setBounds(0,0, 32, 32);
		
		saltarizq= new ElementoGrafico(new ImageIcon(getClass().getClassLoader().getResource("juego/graficos/minimario/jump1.gif")));
		saltarizq.setBounds(0,0, 32, 32);
		
		agachado=new ElementoGrafico(new ImageIcon(getClass().getClassLoader().getResource("juego/graficos/minimario/mario.gif")));
		agachado.setBounds(0,0, 32, 32);
		
		controlarSalto=new ElementoGrafico(new ImageIcon(getClass().getClassLoader().getResource("juego/graficos/minimario/mario.gif")));
		controlarSalto.setBounds(0,0, 32, 32);

	}
	
	/**
	 * Carga los graficos correspondientes a esta caracteristica.
	 */
	public void cargarGraficos() {
		// TODO Auto-generated method stub
		ElementoGrafico e=new ElementoGrafico(new ImageIcon(getClass().getClassLoader().getResource("juego/graficos/minimario/caminandoder.gif")));
		e.setBounds(0,0, 32, 32);
		derecha.setIcon(e.getIcon());
		
		e=new ElementoGrafico(new ImageIcon(getClass().getClassLoader().getResource("juego/graficos/minimario/caminandoizq.gif")));
		e.setBounds(0,0, 32, 32);
		izquierda.setIcon(e.getIcon());

		e=new ElementoGrafico(new ImageIcon(getClass().getClassLoader().getResource("juego/graficos/minimario/mario.gif")));
		e.setBounds(0,0, 32, 32);
		nada.setIcon(e.getIcon());
		
		e= new ElementoGrafico(new ImageIcon(getClass().getClassLoader().getResource("juego/graficos/minimario/jump1.gif")));
		e.setBounds(0,0, 32, 32);
		saltarder.setIcon(e.getIcon());
		
		e= new ElementoGrafico(new ImageIcon(getClass().getClassLoader().getResource("juego/graficos/minimario/jump1.gif")));
		e.setBounds(0,0, 32, 32);
		saltarizq.setIcon(e.getIcon());
		
		e=new ElementoGrafico(new ImageIcon(getClass().getClassLoader().getResource("juego/graficos/mario/agachado.gif")));
		e.setBounds(0,0, 32, 32);
		agachado.setIcon(e.getIcon());
	}

	
	/**
	 * Setea la imagen inicial de Mario Bros.
	 */
	public  void setGrafica(){
		// TODO Auto-generated method stub
		ElementoGrafico eg= new ElementoGrafico(new ImageIcon(getClass().getClassLoader().getResource("juego/graficos/minimario/mario.gif")));
		eg.setBounds(0,0, 32, 32);
		mario.crearGraficoInicial(eg);
		controlarSalto=eg;
		
	}
	
	
	@Override
	public void convertirA() {
		// TODO Auto-generated method stub
		SoundPlayer s=new SoundPlayer("/juego/musica/crecer.mp3");

		mario.setCaracteristica(new CaracteristicaSuper(mario));
		Caracteristica c=mario.obtenerCaracteristica();
		c.setGrafica();
		//mario.setCaracteristica(c);
		s.play();
	}

	@Override
	public void colisionConMalo(Enemigo e) {
		// TODO Auto-generated method stub
		mario.destruir();
	}

	@Override
	public void colisionConEstrella() {
		// TODO Auto-generated method stub
		//No hace nada
	}

	@Override
	public void colisionConFlorDeFuego() {
		// TODO Auto-generated method stub
		
	}
	public void colisionConSuperHongo()
	{
		convertirA();
	}
}
